package com.xyz.service.impl;

import com.xyz.service.TestService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@Transactional(rollbackFor = Exception.class)
public class TestServiceImpl implements TestService {

/*    @Autowired
    private TestMapper testMapper;

    @Override
    public DataResult selectTest() throws Exception {

        // 按主键查询
        Test test = testMapper.selectByPrimaryKey(1L);

        // 按条件查询
        TestExample tExample = new TestExample();
        tExample.createCriteria().andNameLike("%张三%");
        List<Test> tList3 = testMapper.selectByExample(tExample);
        return DataResult.build9100(test);
    }

    @Override
    public DataResult insertTest() {
        Test test = new Test();
        test.setName("张三");
        test.setAge(0);

        // 新增数据（对象内属性为null时会insert字段=null，如果该字段notNull就会报错）
        testMapper.insert(test);

        // 新增数据（对象内属性为null时不会insert该字段而是应用默认值，如果该字段notNull且无默认值就会报错）
        testMapper.insertSelective(test);

        return DataResult.build9100();
    }

    @Override
    public DataResult updateTest() throws Exception {
        Test test = new Test();
        test.setId(1L);
        test.setAge(1);
        test.setName("张三三");

        TestExample tExample = new TestExample();
        tExample.createCriteria().andNameLike("%张三%");

        // 根据主键更新全部字段（对象内属性为null时会update字段=null）
        testMapper.updateByPrimaryKey(test);

        // 根据主键更新部分字段（对象内属性为null时不会update该字段）
        testMapper.updateByPrimaryKeySelective(test);

        // 根据条件更新全部字段（对象内属性为null时会update字段=null）
        testMapper.updateByExample(test, tExample);

        // 根据条件更新部分字段（对象内属性为null时不会update该字段）
        testMapper.updateByExampleSelective(test, tExample);

        return DataResult.build9100();
    }

    @Override
    public DataResult deleteTest() throws Exception {

        // 根据主键删除
        testMapper.deleteByPrimaryKey(2L);

        // 根据条件删除
        TestExample tExample = new TestExample();
        tExample.createCriteria().andNameLike("%张三三%");
        testMapper.deleteByExample(tExample);

        return DataResult.build9100();
    }*/
}
